package com.hongyun.tms.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 拖轮信息表
 *
 * @author yuheng
 * @since 1.0.0 2024-06-06
 */

@Data
@Accessors(chain = true)
@TableName("TMS_M_TUG")
@ApiModel(value = "TmsMTug对象", description = "TmsMTug")
public class TmsMTug implements Serializable {
	@TableId
	private Long id;

	/**
	 * 拖轮编号
	 */
	@ApiModelProperty(value = "拖轮编号")
	private String tugNo;

	/**
	 * 拖轮名称
	 */
	@ApiModelProperty(value = "拖轮名称")
	private String tugName;

	/**
	 * 拖轮状态，0适航1不适航2停修
	 */
	@ApiModelProperty(value = "拖轮状态，0适航1不适航2停修")
	private Integer staus;

	/**
	 * 拖轮类型代码，字典
	 */
	@ApiModelProperty(value = "拖轮类型代码，字典")
	private String tugTypeCode;

	/**
	 * 拖轮类型名称，字典
	 */
	@ApiModelProperty(value = "拖轮类型名称，字典")
	private String tugTypeName;

	/**
	 * 注册港
	 */
	@ApiModelProperty(value = "注册港")
	private String registryPort;

	/**
	 * 经营人
	 */
	@ApiModelProperty(value = "经营人")
	private String operator;

	/**
	 * 所有人
	 */
	@ApiModelProperty(value = "所有人")
	private String owner;

	/**
	 * 建造日期
	 */
	@ApiModelProperty(value = "建造日期")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private LocalDate buildDate;

	/**
	 * 建造厂家
	 */
	@ApiModelProperty(value = "建造厂家")
	private String buildFactory;

	/**
	 * IMO
	 */
	@ApiModelProperty(value = "IMO")
	private String imo;

	/**
	 * 呼号
	 */
	@ApiModelProperty(value = "呼号")
	private String callNo;

	/**
	 * 船舶识别号
	 */
	@ApiModelProperty(value = "船舶识别号")
	private String idNo;

	/**
	 * 船舶登记号
	 */
	@ApiModelProperty(value = "船舶登记号")
	private String regNo;

	/**
	 * 总长
	 */
	@ApiModelProperty(value = "总长")
	private BigDecimal tugLength;

	/**
	 * 型宽
	 */
	@ApiModelProperty(value = "型宽")
	private BigDecimal tugWidth;

	/**
	 * 型深
	 */
	@ApiModelProperty(value = "型深")
	private BigDecimal tugDepth;

	/**
	 * 主机功率
	 */
	@ApiModelProperty(value = "主机功率")
	private String power;

	/**
	 * 马力
	 */
	@ApiModelProperty(value = "马力")
	private String horsepower;

	/**
	 * 总吨
	 */
	@ApiModelProperty(value = "总吨")
	private BigDecimal totalTon;

	/**
	 * 净吨
	 */
	@ApiModelProperty(value = "净吨")
	private BigDecimal netTon;

	/**
	 * 满载吃水
	 */
	@ApiModelProperty(value = "满载吃水")
	private BigDecimal draftFull;

	/**
	 * 空载吃水
	 */
	@ApiModelProperty(value = "空载吃水")
	private BigDecimal draftEmpty;

	/**
	 * 作业港区代码,字典
	 */
	@ApiModelProperty(value = "作业港区代码,字典")
	private String portAreaCode;

	/**
	 * 作业港区名称
	 */
	@ApiModelProperty(value = "作业港区名称")
	private String portAreaName;

	/**
	 * 创建人ID
	 */
	@ApiModelProperty(value = "创建人ID")
	private Long createBy;

	/**
	 * 创建人姓名
	 */
	@ApiModelProperty(value = "创建人姓名")
	private String createByName;

	/**
	 * 创建时间
	 */
	@ApiModelProperty(value = "创建时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private LocalDateTime createTime;

	/**
	 * 修改人ID
	 */
	@ApiModelProperty(value = "修改人ID")
	private Long updateBy;

	/**
	 * 修改人姓名
	 */
	@ApiModelProperty(value = "修改人姓名")
	private String updateByName;

	@ApiModelProperty(value = "备注")
	private String remark;

	/**
	 * 修改时间
	 */
	@ApiModelProperty(value = "修改时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private LocalDateTime updateTime;
}
